當條件成立的時候會執行 if 陳述式裡的程式,而不成立時則執行另外一個陳述式。if 單從字面上來看,他有「如果」的意思,以 JavaScript 來說,在使用上也很符合「如果」的語意,以下我直接給予一個簡單日常的情境:
小華他想出門,但他不確定自己的錢包有沒有錢,於是他想打開錢包看看還有多少錢。
如果他有 100 元以上,就吃 80 元的牛肉麵;如果沒有 100 元,那就不吃了。
最後小華想計算自己還剩下多少錢。
let wellet = 0;
wallet += 130;
if(wellet >= 100) {
wellet -= 80;
} else {
wellet -= 0;
}
console.log(`錢包還剩下${wellet}`); // 50
從上面範例可以看到 if 在 JavaScript 裡面的定位,也是很貼近語意的使用方式。
當 () 為 true 的時候,才執行大括號裡面的語句,如果是 false 則跳過整個 if 區塊。
當情境上有多個條件,需要呈現多種判斷結果的時候,可以使用 else if
,情境範例如下:
小華他的習慣是:
- 如果沒有下雨,就不會帶雨具
- 如果下毛毛雨,他會帶輕便雨衣
- 假使下普通的雨,他會帶折傘
- 如果颱風天豪雨,他會帶長傘
let todayWeater = "毛毛雨";
if (todayWeater == "毛毛雨") {
console.log("小華穿輕便雨衣");
}else if (todayWeater == "普通的雨") {
console.log("小華會帶折傘");
}else if (todayWeater == "颱風天豪雨") {
console.log("小華會帶長傘");
}
else {
console.log("就不會帶雨具");
}
if
、else
只能有一個,else if
可以有好幾組。
這個模式則是當 if 的條件裡面又必須有另一個條件的時候會使用到,語意上比較類似「如果他今天.....然後如果他又.....」,最後會呈現一個曹狀結構,來看範例:
腰圍指數測量
男生腰圍大於 90 為過胖
女生腰圍大於 80 為過胖
- 判斷是男生還是女生
- 判斷男生是否超過 90
判斷女生是否超過 80
let sex = "female";
let cm = 70;
if(sex=="female") {
console.log("女生");
if(cm>=80) {
console.log("體型肥胖");
}else {
console.log("體型正常");
}
}else if (sex=="male"){
console.log("男生");
}else {
console.log("無法解讀");
}
以上範例可以看到必須判斷性別後,再次判斷體重是否在正常值,因此寫的方式也與上面兩種不太一樣了。
下面再給一個範例,裡面有的條件又更複雜了:
1.小法鬥每天固定吃 2 餐
2.法鬥標準體重為 12KG,所以只要體重超過 12KG ,一天就只吃 1 餐
3.體重低於 12KG 就恢復吃兩餐
4.體重低於 10KG 就吃 3 餐
let dogEatNum = 2;
let dogWeight = 12;
if(dogWeight >= 13) {
console.log("一天只吃一餐");
if(dogWeight >= 15) {
console.log("就醫減重");
}
}else if(dogWeight <= 12 && dogWeight >= 10) {
console.log("正常吃兩餐");
}else if(dogWeight <= 10 && dogWeight >= 8) {
console.log("一天吃三餐,增加肌肉量");
}else {
console.log("無法判定");
}
透過 if 就可以替程式做出一些小小的判斷,其實是一件很有趣的事,在不停的自己塑造情境並運行的過程,也是不斷加深自己對 if 的熟悉度。